'use strict'

module.exports = async (c, next) => {
    let token = c.headers.authorization || c.query.token
    console.log(token);
    if (!token) {
        return c.status(403).send('user TOKEN NULL')
    }

    let r = c.service.usertok.verify(token)
    
    //通过ok判断是否成功，失败，errcode属性表示失败的状态码
    if (!r.ok) {
        //errcode的值可能是FAILED TIMEOUT ILLEGAL
        return c.status(403).send(r.errcode)
    }

    //把解密后的数据放在c.box上，属性值为user
    //c.box 初始是一个空对象
    c.box.user = r.data

    await next()

}
